Análisis de datos
-----------------
======================== ==========================
Función Significado
======================== ==========================
``summary(data)`` Resumen estadístico
``min(data)`` Mínimo
``max(data)`` Máximo
``mean(data)`` Media aritmética
``median(data)`` Mediana
``range(data)`` Rango
``sd(data)`` Desviación estándar
``var(data)`` Varianza
``cov(data)`` Covarianza
``cor(data)`` Coeficiente de correlación
``quantile(data, 0.05)`` Percentil del 5%
``quantile(data, 0.80)`` Percentil del 80%
``skewness(data)`` Asimetría
``kurtosis(data)`` Curtosis
======================== ==========================
**Cargar datos:**
.. code:: r
datos = read.csv("Datos.csv", sep = ";", dec = ",", header = T)
datos
.. raw:: html
A data.frame: 8 × 5
Nombre | Edad | Género | Peso | Estrato |
<fct> | <int> | <fct> | <dbl> | <int> |
Ángela | 22 | F | 62.5 | 3 |
José | 10 | M | 75.8 | 4 |
Juan | 15 | M | 54.4 | 3 |
Manuela | 35 | F | 73.6 | 3 |
Maribel | 50 | F | 70.0 | 5 |
Antonio | 45 | M | 180.0 | 4 |
Alicia | 1 | F | 15.7 | 1 |
Luis | 32 | M | 103.5 | 5 |
summary:
~~~~~~~~
.. code:: r
summary(datos$Peso)
.. parsed-literal::
Min. 1st Qu. Median Mean 3rd Qu. Max.
15.70 60.48 71.80 79.44 82.72 180.00
La función ``basicStats()``\ calcula más estadíticos que ``summary()``.
Primero se instala el siguiente paquete: ``install.packages("fBasics")``
.. code:: r
library(fBasics)
.. parsed-literal::
Loading required package: timeDate
Loading required package: timeSeries
.. code:: r
print(basicStats(datos$Peso))
.. parsed-literal::
X..datos.Peso
nobs 8.000000
NAs 0.000000
Minimum 15.700000
Maximum 180.000000
1. Quartile 60.475000
3. Quartile 82.725000
Mean 79.437500
Median 71.800000
Sum 635.500000
SE Mean 16.799457
LCL Mean 39.713096
UCL Mean 119.161904
Variance 2257.774107
Stdev 47.516041
Skewness 0.874260
Kurtosis -0.067399
Medidas de tendencia central:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Media.
- Mediana.
- Moda.
.. code:: r
# Media:
mean(datos$Peso)
.. raw:: html
79.4375
.. code:: r
# Mediana:
median(datos$Peso)
.. raw:: html
71.8
La moda es el valor que más se repite, es decir, el de mayor frecuencia.
Con la función ``table()`` se calculan las frecuencias.
.. code:: r
table(datos$Estrato)
.. parsed-literal::
1 3 4 5
1 3 2 2
El Estrato 3 es el de mayor frecuencia. Esta es la moda, entonces la
moda es el máximo de las frecuencias.
.. code:: r
moda <- max(table(datos$Estrato))
moda
.. raw:: html
3
Medidas de dispersión:
~~~~~~~~~~~~~~~~~~~~~~
- Rango.
- Varianza.
- Desviación estándar.
- Coeficiente de variación.
.. code:: r
# Rango:
range(datos$Peso)
.. raw:: html
- 15.7
- 180
.. code:: r
# Varianza:
var(datos$Peso)
.. raw:: html
2257.77410714286
.. code:: r
# Desviación estándar:
sd(datos$Peso)
.. raw:: html
47.5160405246782
.. code:: r
# Desviación estándar:
sqrt(var(datos$Peso))
.. raw:: html
47.5160405246782
.. math:: coeficienteVariación = \frac{DesviaciónEstándar}{Media}
.. code:: r
# Coeficiente de variación:
coef_var <- sd(datos$Peso)/mean(datos$Peso)
coef_var
.. raw:: html
0.598156292993588
Medidas de posición:
~~~~~~~~~~~~~~~~~~~~
**Cuartiles:**
Los diagramas de cajas y bigotes es una forma visual de analizar las
medidas de posición.
.. code:: r
# Cuartiles.
print(quantile(datos$Peso))
.. parsed-literal::
0% 25% 50% 75% 100%
15.700 60.475 71.800 82.725 180.000
.. code:: r
# Q1 - primer cuartil - percentil del 25%:
quantile(datos$Peso, 0.25)
.. raw:: html
25%: 60.475
.. code:: r
# Q2 - segundo cuartil - percentil del 50%:
quantile(datos$Peso, 0.50) # Este es el valor de la mediana.
.. raw:: html
50%: 71.8
.. code:: r
# Q3 - tercer cuartil - percentil del 75%:
quantile(datos$Peso, 0.75)
.. raw:: html
75%: 82.725
**Rango intercuatil (RIC):**
.. math:: RIC = Q_3 - Q_1
.. code:: r
RIC = quantile(datos$Peso, 0.75) - quantile(datos$Peso, 0.25)
RIC # Rango de un 50%
.. raw:: html
75%: 22.25
.. code:: r
RIC = as.numeric(RIC) # para quitarle la etiqueta de 75%
RIC
.. raw:: html
22.25
Medidas de forma:
~~~~~~~~~~~~~~~~~
- Sesgo (asimetría): skewness.
- Curtosis: kurtosis.
.. figure:: asimetria.png
:alt: Asimetría
Asimetría
.. figure:: curtosis.jpg
:alt: Curtosis
Curtosis
.. code:: r
# Asimetría:
skewness(datos$Peso) # Resultados: sesgo positivo.
.. raw:: html
0.874260494208836
.. code:: r
# Curtosis:
kurtosis(datos$Peso) # Resultado: platicúrtica.
.. raw:: html
-0.0673990420899138